#ifndef __CONFIG_H
#define __CONFIG_H

#define CONF_WINDOWX 120
#define CONF_WINDOWY 50

#define STATUS_OFFSETX 20
#define STATUS_OFFSETY 40

#include "Coord.h"
#include "UIKit.h"
#include <time.h>
#include <conio.h>
#include <iostream>
#include <string>
using namespace std;


#define VAISSEAU_LONGEUR 7

enum State{
	ST_HEAD,
	ST_OK,
	ST_GUN,
	ST_BROKEN,
	ST_BROKENGUN,
	ST_DOUBLEHIT
};

//Constants Controls
enum Touches{
	CTL_GAUCHE,
	CTL_DROITE, 
	CTL_HAUT,
	CTL_BAS,
	CTL_TIRER,

	CTL_MAX
};

struct Cadre{
	int cd;
	int ld;
	int cf;
	int lf;
	int couleur;
};

class Config{
private:
	//Config de l'interface
	Cadre j; //Cadre de jeu
	Cadre i; //Cadre de l'interface de jeu
	Cadre s; //Cadre du status du vaisseau
	COORD menuCoord; //Emplacement des menus
	
	//Config de control
	int controls[CTL_MAX];

public:
	//Constructeur / Destructeur
	Config();
	UIKit ui;

	//Drawers
	void drawUI(); //Dessiner l'interface de jeu
	void drawCadre(Cadre c); //Dessiner un cadre
	COORD drawCadreCentrer(int largeur, int hauteur); //Dessiner un cadre centrer
	void drawQuestion(string question); //Dessiner une boite de question
	void clearBox(int x, int y, int xLen, int yLen);
	void drawStyleText(int x, int y, int color, char* text);
	
	//Positionneurs
	COORD getMenuCoord();

	//Config de control
	int getControl(int ctl);
	void setControl(int ctl, int touche);

	//Config de jeu
	Cadre getCadreJeu();

	//Config Fix
	Coord vaisseauStart;

	//Input Handler
	HANDLE hStdin;
};

extern Config conf; //Externe pour permettre l'acces partout

#endif